hhkb
모의해킹

호스트기반모의해킹_11_SSH 취약점 진단

작성자 : Heehyeon Yoo|2025-11-22
# 모의해킹# 취약점 진단# SSH# 무차별 대입# Enumeration

1. 개요

SSH(Secure Shell)는 원격 시스템 제어를 위한 표준 프로토콜로, 강력한 암호화를 제공한다.

  • 특징: 대부분 TCP 22번을 사용한다.
  • 현황: OpenSSH 등 서비스 자체의 취약점(RCE 등)은 매우 드물다. 주로 설정 미흡(Misconfiguration)이나 취약한 비밀번호(Weak Credentials)가 주된 공격 벡터이다.

2. 주요 진단 항목

2.1 사용자 이름 정보 수집(Username Enumeration)

  • 취약점: OpenSSH 7.7 이하 특정 버전에서 발생하는 타이밍 공격(Timing Attack) 취약점.
    • 유효한 사용자(root)와 무효한 사용자(invalid-user) 입력 시 서버의 응답 시간이나 패킷 크기가 미세하게 다른 점을 악용한다.
  • 진단 도구: Metasploit의 ssh_enumusers 모듈.
    use auxiliary/scanner/ssh/ssh_enumusers
    set RHOSTS [Target_IP]
    set USER_FILE [Seclists_Path]
    run
    
  • 의의: 무차별 대입 공격의 타겟(유효 아이디)을 좁혀 공격 성공률을 비약적으로 높여준다.

2.2 무차별 대입 공격(Brute Force Attack)

  • 개념: 유효한 사용자 ID에 대해 비밀번호 사전(Dictionary)을 대입하여 로그인을 시도한다.
  • 반드시 확인할 것:
    1. 공개키 인증 강제 여부: 패스워드 로그인을 비활성화했다면 Brute Force는 불가능하다(안전).
    2. 계정 잠금 임계치(Lockout Threshold): 몇 회 실패 시 IP가 차단되거나 계정이 잠기는지 확인해야 한다.

3. 실무에서는?(Field Considerations)

"계정 잠금(Account Lockout)은 모의해킹의 실패다."

  1. 사전 협의 필수: Brute Force는 시스템 로그에 엄청난 노이즈를 발생시키고, 실제 운영 계정을 잠그어 가용성(Availability)을 침해할 수 있다.
    • 반드시 고객사와 수행 여부, 시간, 대상 계정을 협의해야 한다.
  2. 방어 기제 테스트: 실제 공격보다는 "방어 시스템이 작동하는가?"를 검증하는 데 초점을 맞춘다.
    • 방법: 존재하지 않는 아이디(doesnotexist)로 50회 로그인 시도 -> IP가 차단(Fail2Ban 등)되는지 확인.
    • 이 방식은 실제 계정을 잠그지 않으면서 방어 정책을 안전하게 검증할 수 있다.
  3. 효율성: 수만 개의 비밀번호를 대입하는 것보다, root/root, admin/admin, service/serviceTop 10 Credentials를 시도하는 것이 성공률이 높다.